2 research outputs found

    Uma abordagem híbrida para construção de documentação para apoio à instanciação de frameworks

    Get PDF
    Software reuse is one of the major goals in Software Engineering. Frameworks promote the reuse of individual building blocks, but also of system design. Framework instantiation is the construction of an application reusing a framework. This process requires a substantial understanding effort of the framework. So, high quality documentation may be a useful resource to minimize this effort. However, in most cases, appropriate documentation neither exists nor is up-to-date. A hypothesis is that the framework code itself and existing instantiations could provide useful information for new instantiations. However, in this case developers still would have to read large portions of code. The goal of this thesis is to demonstrate the feasibility of constructing relevant documentation for framework instantiation with static and dynamic analysis of the framework itself and pre-existing instantiations. The proposal is presenting the documentation in a cookbook style, where recipes are composed of programming tasks and information about framework elements related to a desired feature. Initially, two preliminary experiments were conducted to evaluate coverage and practical usefulness of the recipe information for developers. Results pointed out the need for some adjustments, but also indicated sufficient and relevant information in recipes. Finally, we performed a robust study, consisting of three experiments with 44 human subjects, and 88 executions of real framework instantiations. We compared the use of cookbooks with the use of traditional framework documentation. The generated cookbooks presented results better or as good as traditional framework documentation, in terms of correctness, time spent and the satisfaction perception of document uses.Tese (Doutorado)Reuso de software é um dos principais objetivos em Engenharia de Software. Frameworks de aplicação promovem a reutilização de blocos de construção, mas também da solução arquitetural para um determinado domínio de aplicação. A criação de uma aplicação reutilizando um framework denomina-se instanciação do framework e requer um esforço substancial de compreensão do mesmo. Uma documentação de alta qualidade pode ser um instrumento útil para minimizar esse esforço. No entanto, na maioria dos casos, a documentação adequada não existe ou não é atualizada. Uma hipótese é que o próprio código fonte do framework e de instâncias existentes poderiam oferecer informação útil para novas instanciações. Contudo, haveria o desafio dos desenvolvedores entenderem quantidade substancial de código fonte. Neste contexto, o objetivo desta tese é demonstrar a viabilidade de construção de documentação relevante para a instanciação de frameworks utilizando análise estática e dinâmica do código fonte do framework e de suas instanciações pré-existentes. A proposta é apresentar tal documentação como um livro de receitas, onde as receitas são compostas de tarefas de programação e informações sobre os elementos do framework associados a uma característica de interesse. Inicialmente, dois estudos preliminares foram realizados para avaliar a cobertura e a utilidade prática das informações contidas nas receitas, os quais mostraram a necessidade de alguns ajustes, mas também indicaram receitas com informações relevantes e cobertura adequada. Por fim, foi conduzido um estudo robusto composto de 3 experimentos envolvendo ao todo 44 sujeitos humanos, com 88 execuções de atividades reais de instanciação de frameworks, onde o uso de livros de receitas foi comparado ao uso de documentações tradicionais dos frameworks. Os livros de receitas gerados semi-automaticamente apresentaram resultados de uso iguais ou melhores, em termos de taxa de acerto, tempo de execução e percepção da satisfação dos usuários, cumprindo os objetivos de pesquisa

    O impacto do uso de rastros de execução em atividades de localização de características de software: um experimento controlado

    Get PDF
    One of the most frequent problems faced by software maintainers is to find the location of the code related with specific features, which are important for understanding the software requirements. To find where a certain feature is located is a costly task because, in general, it tends to be scattered or tangled into the code. Considering this problem, an approach for locating features using dynamic analysis has been developed, which presents views generated from execution traces. The objective of this work is to help understanding the features, enabling faster location of features and providing higher accuracy rate in maintenance activities, achieved the information that leads directly to the understanding. To evaluate this approach and check whether the goal was achieved, a controlled study was performed with the participation of human beings, when they were performing actual maintenance activities on systems of different sizes. This study contributes with an appraisal about the impact of using information from execution traces on software maintenance. This study shows the benefits related with a systematic use of information from execution traces by reducing the execution time and increasing the rate of correction in searches for information during software maintenance. The views were useful for locating the features of interest and reducing the initial search space, providing better precision in the search for information. This feature resulted in a lower level of difficulty perceived by study participants during the proposed maintenance activities. Besides that, this study has indicated that the size and quality of the search spaces (presented in the views) can affect the rate of correction and execution time on maintenance activities using the presented approach. However, this study also reveals that there are some challenges when it comes to implement this approach on a large scale, system since the views may reveal many false positives and false negatives. This situations can impact the understanding of the systems based on the provided information. On the large-scale use, of the approach, it would be interesting to introduce more robust views, enabling more robust analysis. Finally, another conclusion is that this approach is not useful in comprehension activities where the problem of scattering and entanglement does not occur.Mestre em Ciência da ComputaçãoUm dos problemas mais frequentes enfrentados em manutenção de software é a localização do código para características específicas, as quais são importantes para a compreensão de requisitos de software. Descobrir onde uma característica está localizada é uma tarefa custosa porque, em geral, estas tendem a estar espalhadas ou entrelaçadas pelo código. Considerando este problema, foi desenvolvida uma abordagem para localização de características utilizando análise dinâmica, que apresenta visões geradas a partir dos rastros de execução. O objetivo desta abordagem é auxiliar na compreensão das características, ao tornar mais rápida a sua localização, com informações que direcionam a compreensão e propiciam maior taxa de acerto nas atividades de manutenção. Para avaliação desta abordagem e verificar se o objetivo é alcançado, foi realizado um estudo controlado com sujeitos humanos, executando atividades reais de manutenção em sistemas de diferentes portes. O estudo pretende contribuir com a avaliação do impacto do uso de informações de rastros de execução em atividades de manutenção de software. Este estudo mostrou os benefícios do uso sistemático de informação de rastros de execução na diminuição do tempo de execução e no aumento da taxa de acerto em atividades de manutenção de software para o problema apresentado. As visões da abordagem proposta foram úteis através da localização das características de interesse e redução do espaço de busca inicial, levando ao direcionamento na busca pelas informações, acarretando em um menor nível de dificuldade percebida pelos participantes que utilizaram a abordagem nas manutenções realizadas nos experimentos. Além do mais, constatou-se que os experimentos onde ocorreram as mais expressivas reduções no espaço de busca inicial e melhor qualidade neste, foram os que apresentaram os melhores desempenhos, em tempo e taxa de acerto. Entretanto, este estudo também revela alguns desafios para aplicação desta abordagem em larga escala, uma vez que as visões podem apresentar elementos falsos positivos e falsos negativos que podem impactar na compreensão de sistemas a partir das informações fornecidas. Para um uso em larga escala seria necessária a introdução de outras visões, mais robustas, para viabilizar análises mais aprofundadas. Finalmente, outra conclusão foi que a abordagem não se faz útil em atividades de compreensão onde o problema do espalhamento e entrelaçamento não ocorre
    corecore